#pragma once

#include "BWAPI\Game.h"

namespace BroodWar
{
	public ref class AiBase abstract
	{
	public:
		virtual void OnStart();

		virtual void OnEnd(bool isWinner);

		virtual void OnFrame();

		virtual void OnSendText(String^ text);

		virtual void OnReceiveText(Api::Player^ player, String^ text);

		virtual void OnPlayerLeft(Api::Player^ player);

		virtual void OnNukeDetect(Api::Position^ target);

		virtual void OnUnitDiscover(Api::Unit^ unit);

		virtual void OnUnitEvade(Api::Unit^ unit);

		virtual void OnUnitShow(Api::Unit^ unit);

		virtual void OnUnitHide(Api::Unit^ unit);

		virtual void OnUnitCreate(Api::Unit^ unit);

		virtual void OnUnitDestroy(Api::Unit^ unit);

		virtual void OnUnitMorph(Api::Unit^ unit);

		virtual void OnUnitRenegade(Api::Unit^ unit);

		virtual void OnSaveGame(String^ gameName);

		virtual void OnUnitComplete(Api::Unit^ unit);
	};
}